﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Rappelz.GameServer
{
    public class NPCBase
    {
        public enum  SpawnType : int
        {
            Normal = 0,
            DungeonSeige = 1,
            DungeonNormal = 2,
            None = 3,
            Cash = 4,
        }

        public int id;// Data           :   this+0x0, Member, Type: int, 
        public int text_id;// Data           :   this+0x4, Member, Type: int, 
        public int name_text_id;// Data           :   this+0x8, Member, Type: int, 
        public int x;// Data           :   this+0xC, Member, Type: int, 
        public int y;// Data           :   this+0x10, Member, Type: int, 
        public int z;// Data           :   this+0x14, Member, Type: int, 
        public int face;// Data           :   this+0x18, Member, Type: int, 
        public uint local_flag;// Data           :   this+0x1C, Member, Type: int, 
        public bool is_periodic;// Data           :   this+0x20, Member, Type: bool, 
        public long begin_of_period;// Data           :   this+0x28, Member, Type: __int64, 
        public long end_of_period;// Data           :   this+0x30, Member, Type: __int64, 
        public int roaming_id;// Data           :   this+0x38, Member, Type: int, 
        public int standard_walk_speed;// Data           :   this+0x3C, Member, Type: int, 
        public int standard_run_speed;// Data           :   this+0x40, Member, Type: int, 
        public int walk_speed;// Data           :   this+0x44, Member, Type: int, 
        public int run_speed;// Data           :   this+0x48, Member, Type: int, 
        public int attackable;// Data           :   this+0x4C, Member, Type: int, 
        public int offensive_type;// Data           :   this+0x50, Member, Type: int, 
        public int spawn_type;// Data           :   this+0x54, Member, Type: int, 
        public int chase_range;// Data           :   this+0x58, Member, Type: int, 
        public int regen_time;// Data           :   this+0x5C, Member, Type: int, 
        public int level;// Data           :   this+0x60, Member, Type: int, 
        public int stat_id;// Data           :   this+0x64, Member, Type: int, 
        public int attack_range;// Data           :   this+0x68, Member, Type: int, 
        public int attack_speed_type;// Data           :   this+0x6C, Member, Type: int, 
        public int hp;// Data           :   this+0x70, Member, Type: int, 
        public int mp;// Data           :   this+0x74, Member, Type: int, 
        public int attack_point;// Data           :   this+0x78, Member, Type: int, 
        public int magic_point;// Data           :   this+0x7C, Member, Type: int, 
        public int defence;// Data           :   this+0x80, Member, Type: int, 
        public int magic_defence;// Data           :   this+0x84, Member, Type: int, 
        public int attack_speed;// Data           :   this+0x88, Member, Type: int, 
        public int magic_speed;// Data           :   this+0x8C, Member, Type: int, 
        public int accuracy;// Data           :   this+0x90, Member, Type: int, 
        public int avoid;// Data           :   this+0x94, Member, Type: int, 
        public int magic_accuracy;// Data           :   this+0x98, Member, Type: int, 
        public int magic_avoid;// Data           :   this+0x9C, Member, Type: int, 
        public string ai_script;// Data           :   this+0xA0, Member, Type: char[0x100], 
        public string contact_script;// Data           :   this+0x1A0, Member, Type: char[0x100], 
    }
}
